﻿//单色可调顶点&片段着色器

Shader "浅墨Shader编程/Volume12/2.ColorChange"
{
	//------------------------------------【属性值】------------------------------------
	Properties
	{
		//主纹理
		_Color("Color", Color) = (1,1,1,1)
	}

	//------------------------------------【唯一的子着色器】------------------------------------
	SubShader
	{
		//--------------------------------唯一的通道-------------------------------
		Pass
		{
			//===========开启CG着色器语言编写模块============
			CGPROGRAM

			//指定顶点与片段着色器名称
			#pragma vertex vert
			#pragma fragment frag

			//--------------------------------【顶点着色函数】-----------------------------
			// 输入：POSITION语义（坐标位置）
			// 输出：SV_POSITION语义（像素位置）
			//---------------------------------------------------------------------------------
			float4 vert(float4 vertexPos : POSITION) : SV_POSITION
			{
				//坐标系变换
				//输出的顶点位置（像素位置）为模型视图投影矩阵乘以顶点位置，也就是将三维空间中的坐标投影到了二维窗口
				return mul(UNITY_MATRIX_MVP, vertexPos);
			}
			uniform float4 _Color;

			//--------------------------------【片段着色函数】-----------------------------
			// 输入：无
			// 输出：COLOR语义（颜色值）
			//---------------------------------------------------------------------------------
			float4 frag(void) : COLOR
			{
				//返回单色
				return _Color;
			}

			//===========结束CG着色器语言编写模块===========
			ENDCG
		}
	}
}
